#ifndef __OLIVE_HEADER_INCLUDED__
#define __OLIVE_HEADER_INCLUDED__
#define BURP 0
#define STORE 1
#define CNSTINT 2
#define COMP 3
#define ARGS 4
#define GEP 5
#define LOAD 6
#define ALLOCA 7
#define ADD 8
#define MUL 9
#define SUB 10
#define DIV 11
#define ASR 12
#define SL 13
#define CALL 14
#define SDIV 15
#define GLOBAL 16
#define ARGALLOC 17
#define RETURN 18
#define SHR 19
#define CNSTI 20
#define OR 21
#define AND 22
#define XOR 23
#define UMUL 24

struct burm_state {
  int op;
  NODEPTR node;
  struct burm_state **kids;
  COST cost[8];
  struct {
    unsigned burm_stmt:4;
    unsigned burm_mem:1;
    unsigned burm_reg:6;
    unsigned burm_con:1;
    unsigned burm_memc:1;
    unsigned burm_gc:1;
    unsigned burm__:1;
  } rule;
};

#define burm_stmt_NT 1
#define burm_mem_NT 2
#define burm_reg_NT 3
#define burm_con_NT 4
#define burm_memc_NT 5
#define burm_gc_NT 6
#define burm___NT 7
extern int burm_max_nt;

# line 73 "mybrg.brg"
void stmt_action(struct burm_state *_s, 
# line 73 "mybrg.brg"
int indent);

# line 74 "mybrg.brg"
int mem_action(struct burm_state *_s, 
# line 74 "mybrg.brg"
int indent);

# line 75 "mybrg.brg"
int reg_action(struct burm_state *_s, 
# line 75 "mybrg.brg"
int indent);

# line 76 "mybrg.brg"
void con_action(struct burm_state *_s, 
# line 76 "mybrg.brg"
int indent);

# line 77 "mybrg.brg"
int memc_action(struct burm_state *_s, 
# line 77 "mybrg.brg"
int indent);

# line 78 "mybrg.brg"
void gc_action(struct burm_state *_s, 
# line 78 "mybrg.brg"
int indent);

struct burm_state *burm_label(NODEPTR);
struct burm_state *burm_label1(NODEPTR);

void dumpCover(NODEPTR,int,int);

#endif
